You are here: Symbol Reference > Dew Namespace > Dew.Math Namespace > Classes > Matrix Structure > Matrix Methods > EigSymGen Method > Matrix.EigSymGen Method (TMtx, TVec, int, int, TMtx, int[], double, TEigGenType)
Dew Math for .NET
ContentsIndexHome
PreviousUpNext
Matrix.EigSymGen Method (TMtx, TVec, int, int, TMtx, int[], double, TEigGenType)

Computes generalized eigenvalues with reduction of the symmetric-definite generalized eigenvalues/eigenvectors problem to the normal eigenvalue case.

Syntax
C#
Visual Basic
public void EigSymGen(TMtx B, TVec D, int LowerRange, int UpperRange, TMtx V, ref int[] VInfo, double Tolerance, TEigGenType EigGenType);

The routine computes selected eigenvalues and optionally also eigenvectors. The problem is of type:

A*X = lambda*B*X, A*B*X = lambda*X, or B*A*X = lambda*X

 

A and B are symmetric (Hermitian) and B is also positive definite. Eigenvalues and eigenvectors can be selected by specifying a range of indexes of values. Eigenvectors are not computed, if V is passed as nil (NULL).  

Tolerance parameter specifies the absolute error tolerance for the eigenvalues. An approximate eigenvalue is accepted as converged when it is determined to lie in an interval [a,b] of width less than or equal to

Tolerance + EPS / max( |a|,|b| ) ,

where EPS is the machine precision. If Tolerance is less than or equal to zero, then EPS*|T| will be used in its place, where |T| is the 1-norm of the tridiagonal matrix obtained by reducing A to tridiagonal form. 

Eigenvalues will be computed most accurately when Tolerance is set to twice the underflow threshold, not zero. If this routine returns fails , indicating that some eigenvectors did not converge, try setting Tolerance to 2*UnderflowThreshold.  

If V is assinged, VInfo contains values equal to 0 at indices for which eigenvector calculation converged. Eigenvector are stored within V in columns. The returned column count may vary between calls depending on the number of eigenvectors that converged. The eigenvectors are normalized as follows:

etAzBz, etBAz, Z**T*B*Z = I; etABz , Z**T*inv(B)*Z = I.
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!